// 引入request请求库
let {request}=require('../../ajaxUtil/request')

// pages/goodDetail/goodDetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 获取到的商品详情
    goodsInfo:{},
    is_collect:false
  },
  // 点击收藏图标 实现收藏 处理函数
  handleCollect:function(){
    // 在本地储存中 取出collect
    let collect= wx.getStorageSync('collect') || []
    // 判断当前的商品是否在collect这个数组中
    let index=collect.findIndex(c=>c.goods_id===this.data.goodsInfo.goods_id)
    // 如果index=-1,证明不在collect这个数组中，代表还没存进本地储存
    if(index===-1){
      // 加进collect数组
      collect.push(this.data.goodsInfo)
      // 提示用户
      wx.showToast({
        title: '收藏成功！',
      })
      // 设置一下data中 控制 收藏图标样式的变量 为true
      this.setData({
        is_collect:true
      })
    }else{
      // 去掉元素
      collect.splice(index,1)
      // 提示用户
      wx.showToast({
        title: '取消收藏成功！',
      })
      // 设置一下data中 控制 收藏图标样式的变量 为false
      this.setData({
        is_collect:false
      })
    }
    // 存储
    wx.setStorageSync('collect', collect)
  },
  // 点击加入购物车按钮，添加进购物车
  handleAddToCart:function(){
    // 在本地存储中取出来
    let cart = wx.getStorageSync('cart') || []
    // 判断当前的商品是否在本地存储中
    let index =cart.findIndex(c=>c.goods_id===this.data.goodsInfo.goods_id)
    // 获取到当前的商品信息
    let goodsInfo = this.data.goodsInfo
    // 如果不在本地储存中，index的值为-1,添加到购物车中
    if(index===-1){
      // 如果商品的内存数量为0，我们就不能添加num了
      if(goodsInfo.goods_number<=0){
        wx.showToast({
          title: '当前的商品库存为0',
        })
      }else{
        // 改造goodsInfo这个对象数据，添加一个checked属性
        goodsInfo.checked=true
        // 添加一个num属性，用来记录购物车里面这个商品的数量
        goodsInfo.num=1
        // 往cart中添加进这个商品
        cart.push(goodsInfo)
        // 提示用户，添加成功
        wx.showToast({
          title: '添加购物车成功',
        })
      }
    }else{
      // 如果本地储存中cart的num数量大于goods_number数量，就代表超过库存了，提醒用户
      if(cart[index].num>goodsInfo.goods_number){
        wx.showToast({
          title: '添加数量已超过库存',
        })
        cart[index].checked=false
      }else{
        cart[index].num += 1
        wx.showToast({
          title: '添加商品成功',
        })
        cart[index].checked=true
      }
    }
    wx.setStorageSync('cart', cart)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    const {goods_id} = options
    let res = await request({
      url:'goods/detail',
      data:{
        goods_id
      }
    })
    
    let collect= wx.getStorageSync('collect') || []
    // 判断当前的商品是否在collect这个数组中
    let index=collect.findIndex(c=>c.goods_id==goods_id)
    // 如果index=-1,证明不在collect这个数组中，代表还没存进本地储存
    if(index===-1){
      // 设置一下data中 控制 收藏图标样式的变量 为false
      this.setData({
        is_collect:false
      })
    }else{
      // 设置一下data中 控制 收藏图标样式的变量 为true
      this.setData({
        is_collect:true
      })
    }
    this.setData({
      goodsInfo:res.message
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})